import Vue from 'vue'
import VueRouter from 'vue-router'
// import Login from "../components/Login";
// import Home from "../components/Home";
// import Welcome from "../components/Welcome";
// import Users from "../components/user/Users";
// import Rights from "../components/power/Rights";
// import Roles from "../components/power/Roles";
// import Cate from "../components/goods/Cate";
// import Params from "../components/goods/Params";
// import GoodsList from "../components/goods/List";
// import Add from "../components/goods/Add";
// import Edit from "../components/goods/Edit";
// import Order from "../components/order/Order";
// import Report from "../components/report/Report";

// 改造为路由懒加载
const Login = () => import(/* webpackChunkName: "login_home_welcome" */ '../components/Login')
const Home = () => import(/* webpackChunkName: "login_home_welcome" */ '../components/Home')
const Welcome = () => import(/* webpackChunkName: "login_home_welcome" */ '../components/Welcome')

const Users = () => import(/* webpackChunkName: "Users_Rights_Roles" */ '../components/user/Users')
const Rights = () => import(/* webpackChunkName: "Users_Rights_Roles" */ '../components/power/Rights')
const Roles = () => import(/* webpackChunkName: "Users_Rights_Roles" */ '../components/power/Roles')

const Cate = () => import(/* webpackChunkName: "Cate_Params" */ '../components/goods/Cate')
const Params = () => import(/* webpackChunkName: "Cate_Params" */ '../components/goods/Params')

const GoodsList = () => import(/* webpackChunkName: "GoodsList_Add_Edit" */ '../components/goods/List')
const Add = () => import(/* webpackChunkName: "GoodsList_Add_Edit" */ '../components/goods/Add')
const Edit = () => import(/* webpackChunkName: "GoodsList_Add_Edit" */ '../components/goods/Edit')

const Order = () => import(/* webpackChunkName: "Order_Report" */ '../components/order/Order')
const Report = () => import(/* webpackChunkName: "Order_Report" */ '../components/report/Report')



Vue.use(VueRouter)

const routes = [
  {
    path:'/',
    redirect:'/login'
  },
  {
    path:'/login',
    component:Login
  },
  {
    path: '/home',
    component: Home,
    redirect: '/welcome',
    children:[{
      path:'/welcome',
      component:Welcome
    },
      {
        path: '/users',
        component: Users
      },{
        path: '/rights',
        component: Rights
      },{
        path: '/roles',
        component: Roles
      },{
        path: '/categories',
        component: Cate
      },{
        path: '/params',
        component: Params
      },{
        path: '/goods',
        component: GoodsList
      },{
        path: '/goods/add',
        component: Add
      },{
        path: '/goods/edit/:id',
        component: Edit
      },{
        path: '/orders',
        component: Order
      },{
        path: '/reports',
        component: Report
      }]
  }
]

const router = new VueRouter({
  routes
})

// 挂载路由导航首位
router.beforeEach((to,from,next) => {
  // to表示将要访问的对象
  // from表示从哪个路径跳转而来
  // next是一个函数，表示放行
  // next()直接放行 next('/login')强制跳转
  // 如果访问Login，直接放行
  if (to.path === '/login') return next()
  // 获取token
  const tokenStr = window.sessionStorage.getItem('token')
  // 如果token值不存在,强制跳转
  if (!tokenStr) return next('/login')
  // 如果token值存在，以上都没被return打断，就直接放行
  next()
})
export default router
